Method and Apparatus for Queue-Based Automated Staff Scheduling

ABSTRACT

The invention disclosed herein provides a queue-based scheduling system, which comprises an automated staff scheduling computer program that is highly flexible in enforcing scheduling rules. This flexibility comes from the ability to: (1) Define conditional and unconditional rules; (2) Rank the rules/requests in varying priority as represented by a numeric value assigned to each rule/request; and (3) Specify rules both per individual and per group. These three abilities synergistically produce an automatic scheduling system that can enforce a wide variety of scheduling rules and requirements seen in actual staff scheduling situations. Furthermore, all these abilities rely on using a queue per scheduled assignment to hold requests and rules.

BACKGROUND OF THE INVENTION

1. Technical Field

This invention relates to automation of staff or employee scheduling.More particularly, the invention relates to a method and apparatus forqueue-based automated staff scheduling.

2. Description of the Prior Art

Staff scheduling is the process of matching a list of employees with alist of shifts or assignments (hereafter referred to as “assignments”)for a specified date range. The choice of a particular individual for agiven assignment on a given day is generally subject to severalconstraints imposed by institutional scheduling policies andindividual/group preferences. Scheduling a large task force in thepresence of large number of such constraints, makes manual scheduling adaunting task. In many cases, it is infeasible to achieve a goodschedule manually. Furthermore, the scheduling rules and preferences arerarely static. There are often exceptions to the scheduling rules andpreferences based on various scheduling conditions. These problems alsomake it difficult to build a general purpose computer program that canautomate employee scheduling.

The main challenges in automating the process are twofold:

1. How are the constraints, e.g. rules and preferences, which arespecific to the institutional, social, and political environment of anorganization, expressed in a form that can be represented in theinternal data structures of a general purpose software system?Furthermore, how can these representations be used to express not onlyrules and individual preferences, but also their exceptions?

2. Once a representation has been found, what is the computationalprocess that makes it tractable to choose a schedule among large numberof possible schedules, which grow exponentially as the number ofemployees or assignments increases?

It would be advantageous to provide a method and apparatus thataddresses these problems.

SUMMARY OF THE INVENTION

The invention disclosed herein addresses the above-mentioned problems byintroducing a queue-based scheduling system. The invention disclosedherein comprises an automated staff scheduling computer program that ishighly flexible in enforcing scheduling rules. This flexibility comesfrom the ability to:

1. Define conditional and unconditional rules;

2. Rank the rules/requests in varying priority as represented by anumeric value assigned to each rule/request; and

3. Specify rules both per individual and per group.

These three abilities synergistically produce an automatic schedulingsystem that can enforce a wide variety of scheduling rules andrequirements seen in actual staff scheduling situations. Furthermore,all these abilities rely on using a queue per scheduled assignment tohold requests and rules.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 provides an example of constraints that go into scheduling anassignment on a given day according to the invention;

FIG. 2 shows an internal queue data structure that is used to hold rulesand requests entered by a user; in FIG. 2, time scope field of therequests, or actions of rules, are used to determine into which queuesthe request is inserted according to the invention;

FIG. 3 shows the details of a request as stored in computer memoryaccording to the invention;

FIG. 4 shows the details of a conditional rule as stored in computermemory according to the invention; and

FIG. 5 shows how the invention can expose scheduling rationale bydisplaying the scheduling request on each individual and also the eventthat caused the request if it was imposed by a conditional rule.

DETAILED DESCRIPTION OF THE INVENTION

The invention disclosed herein provides a queue-based scheduling system,which comprises an automated staff scheduling computer program that ishighly flexible in enforcing scheduling rules. This flexibility comesfrom the ability to:

1. Define conditional and unconditional rules;

2. Rank the rules/requests in varying priority as represented by anumeric value assigned to each rule/request; and

3. Specify rules both per individual and per group.

These three abilities synergistically produce an automatic schedulingsystem that can enforce a wide variety of scheduling rules andrequirements seen in actual staff scheduling situations. Furthermore,all these abilities rely on using a queue per scheduled assignment tohold requests and rules.

The scheduling process using the said automated staff scheduling systemcan be summarized in the following steps:

1. Collect requests and rules using a graphical user-interface.

2. Determine the scheduling period that has a start date and stop dateas defined by the user.

3. Create a request queue for each assignment of each day of thescheduling period.

4. For each request or a rule, determine which days the request or ruleis applicable.

5. For each applicable assignment of each day, insert the request intoits queue.

6. Sort the assignments of all days from most constrained to leastconstrained and begin scheduling from the most constrained assignment.

7. For each assignment in the day, create a list of candidates for thatassignment for that day. For each candidate, associate the highestpriority request in the request queue that applies to that candidate.This highest priority value for the candidate is the candidate bid forthe chosen assignment.

8. ort the candidate according to the bid calculated in Step 7 above.Schedule the candidate with the highest number.

9. Repeat Steps 6-9 above for the remaining assignments in each day ofthe user-defined period.

As a concrete example of the main ideas above, FIG. 1 shows howscheduling rules and individual preferences are collected in a queue ina single day, i.e. December 24th. For simplicity, it is assumed in thefigure that there is only a single assignment in each day, although thesame method can be used for cases where there are multiple assignmentsin a day.

Constraints on scheduling choices can be either conditional, meaning theconstraints are only in effect if a certain scheduling conditionapplies, or they are unconditional. An example of a conditional rule is:“If George is scheduled for Primary assignment, then do not scheduleSteve for the Backup assignment the same day.” Whether a rule isconditional or unconditional, any rule can be defined to either apply toa specific individual or a group of individuals. An example of a grouprule is: “Do not exceed 40 hours for the full-time staff members.” Userscan define as many groups as needed, in addition to a system definedgroup called “Everyone” which includes all scheduled individuals.Institutional rules are generally expressed in the form of group rulesbecause institutional rules are not specific to any one individual.

As shown in FIG. 1, all rules and requests are associated with a numberwhich describes the rank or the priority of that rule/request relativeto the other rules. A large positive number indicates that anyindividual under that rule is highly favored to be scheduled for thegiven shift on the given day. In contrast, a large negative numberimplies that all individuals subject to the rule are not favored to bescheduled. Individuals who are not subject to any rules have a prioritypoint zero by default, indicating neutrality. Given this scheme, thechoice of who to schedule on a given shift is determined by sorting thelist and selecting the individual with the highest positive point value.Consequently, when an individual is under more than one rule, the rulehaving the highest absolute value of priority points is the rule chosento allow the individual to compete with other individuals. This hasimportant implication because it lends to a straightforward way ofimplementing exceptions to rules. For example in the FIG. 1, assume thatJoe worked on Friday instead of Mark. Because of the rule “Whoever workson Friday works on Saturday and Sunday,” Joe is under this constraint tobe scheduled for Saturday with priority points of +100. However—becauseJoe is under a constraint, “Joe would like December 24^(th) off” with apoint value of −200 and because the absolute value of this request isgreater than the rule described above—Joe is not scheduled for Saturday.Therefore the two rules interact to form a more complex rule which hasthe meaning: “Schedule Joe on Saturday and Sunday if Joe is working onFriday unless Joe has requested that day off.”

FIG. 2 shows how the requests and rule descriptions are stored in queuesper assignment per day for a user-defined period. Static orunconditional rules can be entered in the request queues prior torunning the automated scheduler. Although the word “queue” is used torefer to a memory data structure that holds the collection of requests,any equivalent data structure, such as an array or a list, could be usedinstead.

Conditional rules and requests are entered during the execution of theprogram, depending on the scheduling conditions. For example, in theconditional rule “If George is scheduled for Primary assignment, then donot schedule Steve for Backup assignment on the same day,” the request“Do not schedule Steve for Backup” is only entered in the request queuefor “Backup” that day only if the auto scheduler has already scheduledGeorge for “Primary” that day. As a result, the queues may grow duringthe execution of the program. The significance of dynamicallymanipulating the request queues during the execution of the program isthat every scheduling decision can influence the scheduling decisions ofanother assignment which has not yet been scheduled. This permits ahighly adaptive scheduler that changes its scheduling behavior duringthe execution of the program, based on scheduling decisions made earlierduring execution of the program.

FIG. 3 shows how the request information can be summarized asappropriate for storage in the internal data structures, or as stored inthe computer's memory. The agent is either the user who manually enteredthe request on the computer, or a consequence of a conditional ruledescribed next. The time scope determines in which queues of FIG. 2 therequest should stored.

FIG. 4 shows the details of a conditional rule. Each conditional rulehas a set of conditions and a set of actions. When all the conditionsare met, the set of actions is converted into a request of the formshown in FIG. 3 before they are inserted into appropriate queues of FIG.2. Consider the complex conditional rule “If Sam is scheduled on Fridayfor Phones and Mary is not scheduled 2 days later for Admin, thenschedule Frank the following Tuesday for Phones and schedule Mary onDecember 20^(th) through December 21^(st)” for Late Shift.

In this somewhat concocted example:

1. The conditions are “Sam is scheduled on Friday for Phones” and “Maryis not scheduled 2 days later.”

2. The actions are “Schedule Frank the following Tuesday for Phones” and“Schedule Mary on December 20th through December 21st.”

3. “Following Tuesday,” “Friday,” “2 days later,” “December 20^(th)through December 21^(st)” are examples of time scopes used in the rule.

4. Phones, Late Shift and Admin are examples of assignments.

Having the requests stored in the queues enables the auto scheduler toreadily offer a justification or rationale for a scheduling decisionmade by the scheduling system. This explanation or rationale can be usedby the human user to override the automated scheduling choices ifnecessary. FIG. 5 shows an interface that exposes information containedin the queues in a form a user can use to override the choice that theautomatic scheduler has made. This alternates list displays all theconstraints (requests) that are currently imposed on the alternateindividuals. The column called “Request” indicates whether there was arequest for “On,” “Off,” or “Neutral” if no requests are applicable. The“Request Description” column is the name of the request or the rule thatcreated the request. Some entries also show the cause in the requestdescription. These are requests that are actions of conditional rules,and the information about the causing event is derived from the “Agent”field of FIG. 3.

The above describes how to decide who to schedule for a given assignmenton a given day. This is a local decision because it does not considerthe impact it has on the entire schedule. A collection of good localchoices, however, can lead to poor global schedule because ofinterdependencies between assignments caused by rules. In other words, aperfectly good local choice may force a poor local choice on a differentassignment on a different day by driving the auto scheduler into acorner towards the end of scheduling process. When that happens, theauto scheduler may be forced to schedule someone that violates a rule ora request. The following describes two methods to avoid these cases.

In the first method, the auto scheduler generates schedules in multiplephases. During each phase, the automatic scheduler entirely schedulesevery assignment on every day in the scheduling period. On second andlater phases, it learns from any hazards detected in earlier phases togenerate a better overall schedule. These hazards are detected wheneverthe automatic scheduler cannot find an individual that would not violatesome rule or request. Whenever the automatic scheduler is forced intosuch a corner, it looks to see if any conditional rule has forced thissituation. If it did, it finds the source or the condition of the rule(the cause) that generated the violating request (the result). Note thatthe automatic scheduler cannot do anything about violations that resultfrom a static or unconditional request because the cause of thoserequests is human users. For dynamically generated requests, such asthose caused by conditional rules, the auto scheduler can make a note toitself in the current phase not to make the scheduling choice that ithad made on the source or causing assignment. This self-note can beachieved by entering a normal on/off request on the source queue, asdescribed in FIGS. 2 and 3. The only difference is that these arerequests made internally by the auto scheduler and are not directlyrelated to rules and requests entered by the user. In subsequent phases,the automatic scheduler avoids the hazard by using the submittedrequest, i.e. the self-note, from previous phases. To take this internalrequest into account, the auto scheduler need not do anything special.The auto scheduler sorts the queue and chooses the highest prioritycandidate, as discussed earlier. This internal request can be thought ofas a way to push-back the scheduling choice that forced the violation tooccur. After several iterations (phases), the hazards can be avoided.

In the second method, the auto scheduler randomly chooses differentassignments on different days, rescheduling individuals until the globalschedule improves or converges to an acceptable one. To know whether theglobal schedule has improved after a scheduling adjustment, the autoscheduler summarizes the number of requests or rules in each queue thatare in violation across all assignments in the entire schedule. If thetotal number of violations decreases, the schedule has been improved andtherefore is chosen over prior schedules. This method, known in academicliterature as “Simulated-annealing”, works well when used together withthe described queue-based scheduler.

One of the desirable consequences of priority-based scheduling systemusing queues is that it allows a straightforward implementation of anauction system as a way to resolve conflicting requests for contestedassignments or days. Each scheduled individual can be given a fixednumber of points or currency to spend. Each individual then decides howto distribute or spend the points to various requests, based on thatindividual's needs and preferences. In many cases where there are nocontentions, a small number of points may suffice, but in other cases,such as an off request for a popular holiday, may require raising thepoints to out-compete others with similar requests. The individual thatspends the most points wins the request for that assignment for thatday. It is also easy to model seniority or preferential treatment ofindividuals by giving each individual a different number of points tospend. A senior staff member, for example, could be given 20,000 pointsto make the requests and preferences of his choice and a junior membercould be given 15,000 points. Points that remain unspent during ascheduling period could be carried over to the next scheduling period,attenuated gradually, or cancelled.

Operation

1. The scheduling administrator defines scheduling rules and policiesand enters them in the system in the form of conditional orunconditional rules. Each rule is given a number that represents thepriority of that rule.

2. Users, potentially using a web interface from a remote location,enter their request for the scheduling period. These could be eitherre-occurring request, e.g. “I prefer to work on Tuesdays,” “I prefer tonot work the first Monday of every month,” or non-reoccurring, e.g. “Iwould like December 24^(th)-December 26^(th) off.” Users can assign apriority point to each of these requests, indicating the relativeimportance of the request.

3. Once all rules and requests have been entered, the schedulingadministrator tells the system to begin scheduling for a user-specifiedperiod defined by a begin date and an end date. The auto scheduler sortsthe rules/requests for a given assignment for that day based on thevalue of the priorities. Candidates are matched with the requests toarrive at the candidate with the highest request priority, which is thescheduling choice for the assignment for that day.

4. Once the schedule has been generated by the system, the schedulingadministrator optionally inspects each scheduling choice and reviewsalternates for any particular assignment. The auto scheduler helps theadministrator in choosing alternates by showing all the rules andrequests that are in effect for each of the alternates. This informationis available in the request queue for the chosen assignment.

5. When the schedule is completed after manual modifications in Step 4above, the schedule can then be made available for all to see either byprinting the schedule on a printer or making the scheduling available ona web site for remote viewing.

Although the invention is described herein with reference to thepreferred embodiment, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.Accordingly, the invention should only be limited by the Claims includedbelow.

1. A queue-based scheduling apparatus for automated staff scheduling andfor enforcing scheduling rules and requirements, comprising: means fordefining conditional and unconditional rules; means for ranking rulesand requests in varying priority as represented by a numeric valueassigned to each rule and request; and means for specifying rules bothper individual and per group.
 2. The apparatus of claim 1, furthercomprising: at least one queue per each scheduled assignment for holdingrequests and rules.
 3. A scheduling process, comprising the steps of:collecting requests and rules using a graphical user-interface;determining a scheduling period that has a user-defined start date andstop date; creating a request queue for each day of a period; for eachrequest or rule, determining which days said request or rule isapplicable; for each applicable day, inserting a request into its queue;sorting said days from most constrained to least constrained; beginningscheduling from a most constrained day; for each assignment in a day,creating a list of candidates for that assignment for that day; for eachcandidate, associating a highest priority request in said request queuethat applies to said candidate, wherein said highest priority value fora candidate is a candidate bid for a chosen assignment; sorting saidcandidates according to a bid calculated in the immediately precedingstep; scheduling a candidate having a highest number; determining aschedule for any remaining days.
 4. The method of claim 3, wherein saidconstraints on scheduling choices comprise either of conditional andunconditional constraints, wherein conditional constraints are only ineffect if a certain scheduling condition applies.
 5. The method of claim3, wherein a rule applies to either of a specific individual or a groupof individuals.
 6. The method of claim 3, further comprising the stepof: associating rules with a number which describes a rank or a priorityof that rule relative to other rules; wherein a large positive numberindicates that any individual under that rule is highly favored to bescheduled for the given shift on a given day; wherein a large negativenumber indicates that any individual under that rule is not favored tobe scheduled for the given shift on a given day; and wherein anindividual who is not subject to any rules has a priority point zero bydefault, indicating neutrality.
 7. The method of claim 3, furthercomprising the step of: choosing a rule having a highest absolute valueof priority points for an individual to compete with other individualswhen more than one rule is to be applied.
 8. The method of claim 3,further comprising the steps of: entering static or unconditional rulesin the request queue prior to running the automated scheduler; andentering conditional rules and requests during execution of the steps ofsaid method, depending on the scheduling conditions; wherein a highlyadaptive scheduler is provided that changes its scheduling behaviorduring execution of the method, based on scheduling decisions madeduring execution of the method.
 9. The method of claim 3, furthercomprising the step of: providing conditional rules, wherein eachconditional rule has a set of conditions and a set of actions, whereinwhen all conditions are met, said set of actions is converted into arequest.
 10. The method of claim 3, further comprising the step of:providing an alternates list that exposes information in a form a usercan use to override the choice that said automatic scheduler has made;wherein said alternates list displays all constraints and requests thatare currently imposed on alternate individuals.
 11. The method of claim3, further comprising the steps of: said auto scheduler generatingschedules in multiple phases; wherein during each phase, said automaticscheduler entirely schedules every assignment on every day in ascheduling period; wherein on second and later phases, said autoscheduler learns from any hazards detected in earlier phases to generatea better overall schedule; wherein said hazards are detected wheneversaid automatic scheduler cannot find an individual that would notviolate some rule or request; said automatic scheduler determining ifany conditional rule has forced this situation and, if it did, finding asource or a condition of the rule that generated a violating request;said automatic scheduler generating and submitting an internal request;and in subsequent phases, said automatic scheduler avoiding said hazardby using said submitted request from previous phases.
 12. The method ofclaim 3, further comprising the steps of: said auto scheduler randomlychoosing different assignments on different days, reschedulingindividuals until a global schedule improves or converges to anacceptable one; and said auto scheduler summarizing a number of requestsor rules in each queue that are in violation across all assignments inan entire schedule to determine whether a global schedule has improvedafter a scheduling adjustment; wherein if a total number of violationsdecreases, said schedule has been improved and therefore is chosen overprior schedules.
 13. An auction method for resolving conflictingscheduling requests, comprising the steps of: giving each scheduledindividual a fixed number of points or currency to spend; eachindividual then deciding how to distribute or spend said points tovarious requests, based on individual needs and preferences; wherein anindividual that spends the most points wins a request for an assignmentfor a specific day.
 14. The method of claim 13, wherein seniority orpreferential treatment is provided to individuals by giving eachindividual a different number of points to spend based upon saidseniority or preference.
 15. The method of claim 13, further comprisingthe steps of: a scheduling administrator defining scheduling rules andpolicies and entering said scheduling rule and practices in the form ofconditional or unconditional rules, wherein each rule is given a numberthat represents the priority of that rule; users entering their requestfor a scheduling period, wherein said users, can assign a priority pointto each of these requests, indicating a relative importance of saidrequest; once all rules and requests have been entered, said schedulingadministrator initiating scheduling for a user-specified period definedby a begin date and an end date; sorting said rules and requests for agiven assignment for a day based on the value of said priorities;matching candidates with requests to arrive at a candidate with ahighest request priority, which is a scheduling choice for an assignmentfor that day; once a schedule has been generated, said schedulingadministrator optionally inspecting each scheduling choice and reviewingalternates for any particular assignment; and when said schedule iscomplete, making said schedule available.
 16. An automated staffscheduling method, comprising the steps of: allowing a large number ofconflicting requests and rules to be entered; said requests and rulescompeting in a scheduling decision based on numerical priorityassociated with said requests and rules.
 17. The method of claim 16,further comprising the step of: resolving conflicts that arise in saidscheduling decision.
 18. The method of claim 16, further comprising thestep of: implementing rules and exceptions to rules.
 19. The method ofclaim 16, further comprising the step of: implementing auction-basedbidding for contentious assignments and days based on which request hasthe highest priority.
 20. The method of claim 16, further comprising thestep of: exposing a rationale for a scheduling decision to a user byshowing who is scheduled, their constraints, and a cause for saidconstraints.
 21. The method of claim 16, further comprising the step of:manipulating a local queue of requests for each assignment.